package lk.icta.core.service;

import lk.icta.core.entity.AlienationMethod;
import lk.icta.core.entity.Objection;
import lk.icta.core.entity.Schedule;
import lk.icta.user.entity.User;

import java.util.Date;
import java.util.*;

/**
 * @author Sisiruwan Senadeera
 */

public interface AlienationMethodsManagementService {

      /**
     * Adding an AlienationMethod
     *
     * @param alienationMethod The AlienationMethod object to be added
     */
    public void addAlienationMethod(AlienationMethod alienationMethod,User user);


    /**
        * To get all the updatable Alienation Methods according to the language
        *
        */
    public List<AlienationMethod> getAllUpdatableAlienationMethods();

    /**
     * Return an AlienationMethod corresponding to the given id
     *
     * @param id   alienation method id
     * @param user user requesting the operation
     * @return AlienationMethod
     */
    public AlienationMethod getAlienationMethodById(int id, User user);

    /**
     * Updating an existing Alienation Method
     *
     * @param alienationMethod  The AlienationMethod to be updated.
     */
     public void updateAlienationMethod(AlienationMethod alienationMethod,User user);

}
